<?php

require("../recursos/excelwriter.inc.php");
header("Content-Type: text/html;charset=utf-8");
define('codigoKardex', 'codigoKardex');
define('fechaKardex', 'fechaKardex');
define('fechaIntroduccion', 'fechaIntroduccion');
define('localizacionk', 'localizacionk');
define('tipomovimientok', 'tipomovimientok');
define('rolk', 'rolk');
define('usuariok', 'usuariok');
define('productok', 'productok');
define('lote', 'lote');
define('cantidad', 'cantidad');
define('cantidadpendiente', 'cantidadpendiente');
define('kardexorigen', 'kardexorigen');
define('localizacionprocedk', 'localizacionprocedk');
define('observaciones', 'observaciones');
define('liberadok', 'liberadok');





if (isset($_POST['accio'])) {
    $accio = $_POST['accio'];
    $_SESSION['provaupd'] = "pasa";
} else {
    $accio = $_GET['accio'];
}

unset($_POST['accio']);
unset($_GET['accio']);
$_SESSION['seleccionado'] = 'kardexs';

if ($accio == 'omplirSelect') {
    processOmplirSelect();
} else {
    if ($accio == 'create') {
        processCreate();
    } else {
        if ($accio == 'update') {
            processUpdate();
        } else {
            if ($accio == 'delete') {
                processDelete();
            } else {
                if ($accio == 'omplirLlista') {
                    processomplirLlista();
                } else {
                    if ($accio == 'omplirFKardex') {
                        processomplirFKardex();
                    } else {
                        if ($accio == 'omplirLlistaks') {
                            processomplirLlistaks();
                        } else {
                            if ($accio == 'createnuevo') {
                                processCreatenuevo();
                            } else {
                                if ($accio == 'deletenuevo') {
                                    processDeletenuevo();
                                } else {
                                    if ($accio == 'omplirLlistaksC') {
                                        processomplirLlistaksC();
                                    } else {
                                        if ($accio == 'omplirLlistaksL') {
                                            processomplirLlistaksL();
                                        } else {
                                            if ($accio == 'omplirLlistaksTL') {
                                                processomplirLlistaksTL();
                                            } else {
                                                if ($accio == 'exportTL') {
                                                    exportTL();
                                                } else {
                                                    if ($accio == 'omplirLlistaksTLl') {
                                                        processomplirLlistaksTLl();
                                                    } else {
                                                        if ($accio == 'omplirLlistaksTLld') {
                                                            processomplirLlistaksTLld();
                                                        } else {
                                                            if ($accio == 'changeliberado') {
                                                                proceschangeliberado();
                                                            } else {
                                                                if ($accio == 'derivaclocalizacion') {
                                                                    procesderivaclocalizacion();
                                                                } else {
                                                                    if ($accio == 'omplirLlistaksLT') {
                                                                        processomplirLlistaksLT();
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

function processOmplirSelect() {
    require('../persistent/Kardex.php');
    $bd = new Basededatos();
    $bd->conectar();
    $kardex = new Kardex($bd);
    $kardex->getLlista();
    $i = 0;
    $jsondata = array();
    foreach ($kardex->llista as $elem) {
        foreach ($kardex->nomDadesTotal as $index) {
            $jsondata[$i][$index] = $elem[$index];
            if ($index == $kardex->nomDadesClau[0]) {
                if (isset($_SESSION[$_GET['sel']]) && ($_SESSION[$_GET['sel']] == $elem[$index])) {
                    $jsondata[$i][$_GET['sel']] = "SELECTED";
                } else {
                    $jsondata[$i][$_GET['sel']] = "";
                }
            }
        }
        $i++;
    }
    unset($_SESSION[$_GET['sel']]);
    echo json_encode($jsondata);
    $bd->cerrar();
}

function processCreate() {
    require('../persistent/Kardex.php');
    $bd = new Basededatos();
    $bd->conectar();
    $kardex = new Kardex($bd);
    $datos = array();
    $i = 0;
    foreach ($kardex->nomDadesCreate as $index) {
        $datos[$i] = $_GET[$index];
        $i++;
    }
    $correcto = $kardex->createEntitat($datos);
    $jsondata = array();
    echo json_encode($jsondata);
    $bd->cerrar();
}

function processUpdate() {
    require('../persistent/Kardex.php');
    $bd = new Basededatos();
    $bd->conectar();
    $kardex = new Kardex($bd);
    $datos = array();
    $i = 0;
    foreach ($kardex->nomDadesUpdate as $index) {
        $datos[$i] = $_GET[$index];
        $i++;
    }
    $claus = array();
    $i = 0;
    foreach ($kardex->nomDadesClau as $index) {
        $claus[$i] = $_GET[$index];
        $i++;
    }
    $correcto = $kardex->updateEntitat($claus, $datos);
    $jsondata = array();
    echo json_encode($jsondata);
    $bd->cerrar();
}

function processDelete() {
    require('../persistent/Kardex.php');
    $bd = new Basededatos();
    $bd->conectar();
    $kardex = new Kardex($bd);

    $claus = array();
    $i = 0;
    foreach ($kardex->nomDadesClau as $index) {
        $claus[$i] = $_GET[$index];
        $i++;
    }
    $correcto = $kardex->deleteEntitat($claus);
    $jsondata = array();
    echo json_encode($jsondata);
    $bd->cerrar();
}

function processomplirLlista() {
    require('../persistent/Kardex.php');
    $bd = new Basededatos();
    $bd->conectar();
    $kardex = new Kardex($bd);
    $kardex->getLlista();
    $i = 0;
    $jsondata = array();
    foreach ($kardex->llista as $elem) {
        foreach ($kardex->nomDadesTotal as $index) {
            $jsondata[$i][$index] = $elem[$index];
        }
        $i++;
    }
    echo json_encode($jsondata);
    $bd->cerrar();
}

function processomplirFKardex() {
    require('../persistent/Kardex.php');
    $bd = new Basededatos();
    $bd->conectar();
    $kardex = new Kardex($bd);
    $claus = array();
    $claus[0] = $_GET['codigoKardexClic'];
    $_SESSION['kardex'] = $_GET['codigoKardexClic'];
    $lallista = $kardex->selectClau($claus);
    $i = 0;
    $jsondata = array();
    foreach ($lallista as $elem) {
        foreach ($kardex->nomDadesTotal as $index) {
            $jsondata[$i][$index] = $elem[$index];
            if (isset($kardex->fk[$index])) {
                $_SESSION[$kardex->fk[$index][2]] = $elem[$index];
            }
        }
        $i++;
    }
    echo json_encode($jsondata);
    $bd->cerrar();
}

//NOUS

function processomplirLlistaks() {
    require('../persistent/Kardex.php');
    $bd = new Basededatos();
    $bd->conectar();
    $kardex = new Kardex($bd);
    $data = $bd->utiles->convertStringDate($_GET['fecha'], '00:00:00');
    $localizacion = $_GET['local'];
    $producto = $_GET['prod'];
    $kardex->getLlistaks($data, $localizacion, $producto);
    $i = 0;
    $jsondata = array();
    foreach ($kardex->llista as $elem) {
        foreach ($kardex->nomDadesTotal as $index) {
            $jsondata[$i][$index] = $elem[$index];
        }
        $mifecha = $elem['fechaKardexdate'];
        $jsondata[$i]['micolor'] = calcularColorks($bd, $elem['localizacionkcodi'], $mifecha);
        $jsondata[$i]['seleccionable'] = $elem['seleccionable'];
        $jsondata[$i]['signo'] = $elem['signo'];
        $jsondata[$i]['liberadok'] = $elem['liberadok'];
        $i++;
    }
    echo json_encode($jsondata);
    $bd->cerrar();
}

function calcularColorks($bd, $loc, $fecha) {
    //require('../persistent/Localizacion.php');
    require_once('../persistent/Tipolocalizacion.php');
    $localizacion = new Localizacion($bd);
    $claus = array();
    $claus[0] = $loc;
    $lallista = $localizacion->selectClau($claus);
    $i = 0;
    $untipo = '';
    foreach ($lallista as $elem) {
        $untipo = $elem['tipoLocalizacion'];
        $i++;
    }
    $tipolocalizacion = new Tipolocalizacion($bd);
    $claus[0] = $untipo;
    $lallista = $tipolocalizacion->selectClau($claus);
    $i = 0;
    $minutos = (time() - strtotime($fecha)) / 60;
    foreach ($lallista as $elem) {

        if ($minutos >= $elem['colorRojo']) {
            return 'rojo';
        } else {
            
        }if ($minutos >= $elem['colorNaranja']) {
            return 'naranja';
        } else {
            return 'verde';
        }

        $i++;
    }
}

function processCreatenuevo() {
    require('../persistent/Kardex.php');
    $bd = new Basededatos();
    $bd->conectar();
    $kardex = new Kardex($bd);
    //  $datos = array();
    $correcto = $kardex->createEntitatnuevo();
    $jsondata = array();
    echo json_encode($jsondata);
    $bd->cerrar();
}

function processDeletenuevo() {
    require('../persistent/Kardex.php');
    $bd = new Basededatos();
    $bd->conectar();
    $kardex = new Kardex($bd);
    $claus = array();
    $claus[0] = $_GET['codigoKardexClic'];
    $jsondata = array();
    $jsondata[0]['mensajeeliminar'] = $kardex->deleteEntitatnuevo($claus);

    echo json_encode($jsondata);
    $bd->cerrar();
}

//CONSULTAS

function processomplirLlistaksC() {
    require('../persistent/Kardex.php');
    $bd = new Basededatos();
    $bd->conectar();
    $kardex = new Kardex($bd);
    $data = $bd->utiles->convertStringDate($_GET['fecha'], '00:00:00');
    $datafi = $bd->utiles->convertStringDate($_GET['fechafi'], '23:59:59');
    $localizacion = $_GET['local'];
    $producto = $_GET['prod'];
    $signo = $_GET['sig'];
    $solofec = $_GET['fec'];
    $kardex->getLlistaksC($data, $localizacion, $producto, $signo, $datafi, $solofec);
    $i = 0;
    $jsondata = array();
    foreach ($kardex->llista as $elem) {
        foreach ($kardex->nomDadesTotal as $index) {
            $jsondata[$i][$index] = $elem[$index];
        }
        $mifecha = $elem['fechaKardexdate'];
        $jsondata[$i]['micolor'] = calcularColorks($bd, $elem['localizacionkcodi'], $mifecha);
        $jsondata[$i]['seleccionable'] = $elem['seleccionable'];
        $jsondata[$i]['signo'] = $elem['signo'];
        $jsondata[$i]['liberadok'] = $elem['liberadok'];
        $i++;
    }
    echo json_encode($jsondata);
    $bd->cerrar();
}

//Consulta por lote GENERAL
function processomplirLlistaksL() {
    require('../persistent/Kardex.php');
    $bd = new Basededatos();
    $bd->conectar();
    $kardex = new Kardex($bd);

    $lote = $_GET['lot'];
    $kardex->getLlistaksL($lote);
    $i = 0;
    $jsondata = array();
    foreach ($kardex->llista as $elem) {
        foreach ($kardex->nomDadesTotal as $index) {
            $jsondata[$i][$index] = $elem[$index];
        }
        $mifecha = $elem['fechaKardexdate'];
        $jsondata[$i]['micolor'] = calcularColorks($bd, $elem['localizacionkcodi'], $mifecha);
        $jsondata[$i]['seleccionable'] = $elem['seleccionable'];
        $jsondata[$i]['signo'] = $elem['signo'];
        $jsondata[$i]['liberadok'] = $elem['liberadok'];
        $i++;
    }
    echo json_encode($jsondata);
    $bd->cerrar();
}


//Consulta por lote TRAZABILIDAD
function processomplirLlistaksLT() {
    require('../persistent/Kardex.php');
    $bd = new Basededatos();
    $bd->conectar();
    $kardex = new Kardex($bd);

    $lote = $_GET['lot'];
    $kardex->getLlistaksLT($lote);
    $i = 0;
    $jsondata = array();
    foreach ($kardex->llista as $elem) {
        foreach ($kardex->nomDadesTotal as $index) {
            $jsondata[$i][$index] = $elem[$index];
        }
        $mifecha = $elem['fechaKardexdate'];
        $jsondata[$i]['micolor'] = calcularColorks($bd, $elem['localizacionkcodi'], $mifecha);
        $jsondata[$i]['seleccionable'] = $elem['seleccionable'];
        $jsondata[$i]['signo'] = $elem['signo'];
        $jsondata[$i]['liberadok'] = $elem['liberadok'];
        $i++;
    }
    echo json_encode($jsondata);
    $bd->cerrar();
}

function processomplirLlistaksTL() {
    require('../persistent/Kardex.php');
    $bd = new Basededatos();
    $bd->conectar();
    $kardex = new Kardex($bd);
    $data = $bd->utiles->convertStringDate($_GET['fecha'], '00:00:00');
    $datafi = $bd->utiles->convertStringDate($_GET['fechafi'], '23:59:59');
    $producto = $_GET['prod'];
    $signo = $_GET['sig'];
    $solofec = $_GET['fec'];
    $kardex->getLlistaksTL($data, $producto, $signo, $datafi, $solofec);
    $i = 0;
    $jsondata = array();
    foreach ($kardex->llista as $elem) {
        foreach ($elem as $nom => $index) {
            $jsondata[$i][$nom] = $index;
        }
        $jsondata[$i]['localizacionkcodi'] = $elem['localizacionkcodi'];
        $i++;
    }
    echo json_encode($jsondata);
    $bd->cerrar();
}

//Exportación
function exportTL() {
    require('../persistent/Kardex.php');
    $bd = new Basededatos();
    $bd->conectar();
    $kardex = new Kardex($bd);
    $data = $bd->utiles->convertStringDate($_GET['fecha'], '00:00:00');
    $datafi = $bd->utiles->convertStringDate($_GET['fechafi'], '23:59:59');
    $producto = $_GET['prod'];
    $signo = $_GET['sig'];
    $solofec = $_GET['fec'];
    $kardex->exportTL($data, $producto, $signo, $datafi, $solofec);

    $jsondata = array();
    $carpeta = "../archivos/" . $_SESSION['usuario'];
    if (!file_exists($carpeta)) {
        mkdir($carpeta, 0757);
    }
    $archivo = $_SESSION['usuario'] . date("YmdHis") . ".xls";
    $ruta = $carpeta . "/" . $archivo;
    $excel = new ExcelWriter($ruta);

    if ($excel == false) {
        echo $excel->error;
    }
    $myArr = array();
    $j = 0;
    //Creamos la cabecera
    foreach ($kardex->nomDadesTotal as $index) {
        $myArr[$j] = $index;
        $j++;
    }
    $excel->writeLine($myArr);
    //Creamos las líneas
    $i = 0;
    $j = 0;

    foreach ($kardex->llista as $elem) {
        foreach ($kardex->nomDadesTotal as $index) {
            //  $jsondata[$i][$index] = $elem[$index];
            $myArr[$j] = $elem[$index];

            $j++;
        }
        //  $myArr[$j] = $elem['fechaKardexdate'];
        $excel->writeLine($myArr);
        $j = 0;
        // $i++;
    }
    $excel->close();
    $ruta = substr($ruta, 1);
    $jsondata[$i]['archivo'] = $ruta;
    echo json_encode($jsondata);

    $bd->cerrar();
}

//PARA LIBERACION
function processomplirLlistaksTLl() {
    require('../persistent/Kardex.php');
    $bd = new Basededatos();
    $bd->conectar();
    $kardex = new Kardex($bd);
    $producto = $_GET['prod'];
    $kardex->getLlistaksTLl($producto);
    $i = 0;
    $jsondata = array();
    foreach ($kardex->llista as $elem) {
        foreach ($elem as $nom => $index) {
            $jsondata[$i][$nom] = $index;
        }
        $i++;
    }
    echo json_encode($jsondata);
    $bd->cerrar();
}

//PARA LIBERACION
function processomplirLlistaksTLld() {
    require('../persistent/Kardex.php');
    $bd = new Basededatos();
    $bd->conectar();
    $kardex = new Kardex($bd);
    $producto = $_GET['prod'];
    $localizacion = $_GET['locd'];
    $kardex->getLlistaksTLld($producto, $localizacion);
    $i = 0;
    $jsondata = array();
    foreach ($kardex->llista as $elem) {
        foreach ($elem as $nom => $index) {
            $jsondata[$i][$nom] = $index;
        }
        $mifecha = $elem['fechaKardexdate'];
        $jsondata[$i]['micolor'] = calcularColorks($bd, $elem['localizacionkcodi'], $mifecha);
        $jsondata[$i]['signo'] = $elem['signo'];
        $jsondata[$i]['liberadok'] = $elem['liberadok'];
        $i++;
    }

    echo json_encode($jsondata);
    $bd->cerrar();
}

function proceschangeliberado() {
    require('../persistent/Kardex.php');
    $bd = new Basededatos();
    $bd->conectar();
    $kardex = new Kardex($bd);
    $kardexchange = $_GET['codigoKardexClic'];
    $valorliber = $_GET['liber'];
    $correcto = $kardex->updateLiberado($kardexchange, $valorliber);
    $jsondata = array();
    echo json_encode($jsondata);
    $bd->cerrar();
}

function procesderivaclocalizacion() {
    $_SESSION['stlloc'] = $_GET['codigoLocalizacionClic'];
    $_SESSION['stllocdes'] = $_GET['locdes'];
    $_SESSION['stlprod'] = $_GET['prod'];
    $_SESSION['stlfecha'] = $_GET['fecha'];
    $_SESSION['stlfechafi'] = $_GET['fechafi'];
    $_SESSION['stlsig'] = $_GET['sig'];
    $_SESSION['stlfec'] = $_GET['fec'];
    $jsondata = array();
    echo json_encode($jsondata);

//codigoLocalizacionClic="+codigoLocalizacionClic+"&prod="+prclicado+"&
//fecha="+$("#fechaTrabajoksTL").val()+"
//&fechafi="+$("#fechaTrabajofiTL").val()+"&sig="+signoclicado;    
}

?>
